home *** CD-ROM | disk | FTP | other *** search
/ The Atari Compendium / The Atari Compendium (Toad Computers) (1994).iso / files / umich / diskutil / memfile.lzh / MEMFIL20.DOC < prev    next >
Encoding:
Text File  |  1988-08-20  |  18.5 KB  |  328 lines

  1. 8/19/88
  2.  
  3.             MemFile 2.0, Copyright 1988 by Dan Wilga. All rights reserved.
  4.  
  5.  
  6.           This program and its resource file may be freely distributed on
  7.           the conditions that a copy of this DOC file is included and no
  8.           payment of any type (including "copying" fees) is incurred upon
  9.           the recipient of the program. No warranty is made as to the
  10.           compatibility of this program and the author cannot be considered
  11.           responsible for any loss of data which results from the use of
  12.           this program. Use it at your own risk!
  13.  
  14.  
  15. | Revisions to Version 1.4:
  16. |     Bug Fixes:
  17. |         []  Window redraws oftentimes were not preformed correctly when
  18. |             the MemFile window was not the topmost.
  19. |         []  A minor change to the way in which it is decided when to
  20. |             display the "These addresses might not be alterable" message.
  21. |         []  Displaying addresses greater than six digits resulted in
  22. |             garbage in the address column of the display.
  23. |         []  The title bar is reset when changing to another editor type.
  24. |             Previously, the results of a Search would be left displayed.
  25. |     Enhancements:
  26. |         []  All graphics routines have been converted to the smaller and
  27. |             faster "linea" type.
  28. |         []  Thanks to Mark Williams' VSMALL option, the code is much smaller.
  29. |             Guess that's why they called it that, eh?
  30. |         []  Many of the features can be activated with a single keystroke,
  31. |             and no longer require the mouse. This includes an automatic
  32. |             repeat for the scroll bar functions. A keymap is available.
  33. |         []  Decimal and hexadecimal offsets can now be entered in any of
  34. |             the three editing modes, not just for Memory. Also, after they
  35. |             have been entered, the value in the editable field is no
  36. |             longer updated to that of the lowest address in the display.
  37. |             I suppose it might get confusing, but I got tired of it the
  38. |             other way.
  39. |         []  The editor makes better use of the numeric keypad. See below.
  40. |         []  The Search feature now posts a message in the title bar of
  41. |             the window if the search has gone past phystop.
  42. |         []  Search also can optionally produce a bell tone after the search
  43. |             has ended for any reason other than the user cancelling. This
  44. |             tone continues every few seconds until a mouse button or key
  45. |             is pressed.
  46. |         []  The location in memory where the actual string being searched
  47. |             for is located no longer stops the search when it is encountered.
  48. |         []  This document has been updated. Changes are denoted by a "|"
  49. |             in the first column.
  50.  
  51.  
  52.   Overview:
  53.  
  54.           MemFile is a desk accessory (DA) program that allows the user to view
  55.   and edit any portion of his ST's memory, a file on any disk drive or the
  56.   individual sectors of any drive. Because it is a desk accessory, it has the
  57.   added advantage that it is available from any GEM application, so you can
  58.   easily call it up if, say for instance, you are debugging a program and you
  59.   want to make sure that it has written a file correctly without having to leave
  60.   the program you are working on. It is also a moveable window which means that
  61.   you can reposition it to another location on the screen or even click on
  62.   another open window.
  63.           The current MemFile package includes the following files:
  64.           
  65. |              MEMFIL20.DOC -- You're reading it
  66. |              MEMFIL20.ACC -- The program
  67. |              MEMFIL20.RSC -- The program's resource file
  68.  
  69.  
  70.   Installation:
  71.  
  72.          MemFile is installed just like any other DA; place the files
  73. | MEMFIL20.ACC and MEMFIL20.RSC in the root directory of the disk drive you
  74.   normally boot from and hit the reset button on the back of your machine.
  75.  
  76.  
  77.   General Use:
  78.  
  79.           When you select the "MemFile!" item from the desktop's menu bar, a
  80.   window appears. When you use MemFile for the first time after booting, the
  81.   program displays the contents of your machine's memory starting at the bottom
  82.   of memory (address 0). At this time you can click on either of the two buttons
  83.   on the right side of the dialog to toggle between hexadecimal or decimal
  84.   addresses. You can also click on either of the other two buttons labeled
  85.   "File" and "Sector" to switch the display to those functions.
  86.           Which ones of the other buttons are valid depends upon the mode you
  87.   are in: if you are in Memory, you can click on either the editable address in
  88.   hex or decimal, but you cannot click on any of the buttons underneath these
  89.   two without switching modes.
  90.           You can edit the information contained in the display by clicking on
  91.   either the two-digit bytes in the second column or their ASCII representation
  92.   in the third column of the display. A cursor will appear, which can be moved
  93.   with the arrow keys. When you are editing the bytes, only the 0-9, a-f
  94. | (or A-F) keys will have any effect. You can either use the keys that appear
  95. | on the main keyboard for this or the ones on the numberic keypad. The hex
  96. | letters A-F can also be entered on the keypad by referring to the follwing
  97. | diagram:
  98. |
  99. |        --- --- --- ---
  100. |       | A | B | C | D |
  101. |        --- --- --- ---
  102. |       | 7 | 8 | 9 | E |
  103. |        --- --- --- ---
  104. |       | 4 | 5 | 6 | F |
  105. |        --- --- --- ---
  106. |       | 1 | 2 | 3 |Ent|
  107. |        ------- ---|   |
  108. |       | 0     |###|   |    Note: The decimal key is unused in this mode.
  109. |        ------- --- ---
  110. |
  111. | When editing the ASCII values contained in the second column, you can enter
  112. | anything, including control characters. When you are done editing, hit the
  113.   Return key. A dialog asking if you want to rewrite the information will
  114.   appear. Click on "Yes" only if you are certain that the changes you have made
  115.   are correct, otherwise you may damage system memory, forcing you to re-boot
  116.   or, worse, damage important information on a disk.
  117.           Normally, the ASCII column of the display contains all the individual
  118.   characters that make up the area being viewed. The one exception to this is
  119.   the NUL character (0x00) which cannot normally be displayed. MemFile shows
  120.   a decimal point (".") in any location where a NUL should be. Please be aware
  121. | that if you attempt to edit the ASCII column, the only way to actually enter
  122. | a true NUL character is with the decimal key ON THE KEYPAD. Do NOT enter
  123. | a decimal point from the main keyboard if what you want is a NUL! The
  124. | surest way to change a byte to a NUL is to change its value in the Hex
  125.   column to zero instead.
  126.  
  127.  
  128.   The Search Feature:
  129.   
  130.           The "Search" button calls-up a dialog which allows you to search for
  131.   a string of characters within the area that is currently being displayed.
  132.   Click on either the ASCII or the Hex box, depending upon how you want to
  133.   enter the string. After you have clicked on one or the other the cursor
  134.   will appear on the field you selected, allowing you to edit the information
  135.   there. The ASCII field may contain any key that can be typed on the keyboard.
  136.   The Hex field, however, must only contain the digits 0-9 and A-F (or
  137.   lowercase a-f).
  138. |         The other option you have here is to specify whether or not you
  139. | want to be alerted when the search has completed. If you select "On", a
  140. | bell tone will be produced when the search has finished, assuming you did
  141. | not cancel the search part way through. The tone will continue to sound
  142. | every few seconds, but can be stopped by pressing a key, the left mouse
  143. | button, or performing a window operation. This feature was intended to allow
  144. | you to do something else (dare I say it?) away from the computer while
  145. | a lengthy search is being performed.
  146.           When you have finished editing the field you chose, click on the
  147.   "Done!" button at the bottom of the dialog. The search will then begin. You
  148.   should see the scroll bar move as the search progresses though, in the case
  149.   of a Memory search, the bar may not move very often.
  150.           If the string of characters is found the display will be redrawn at
  151.   the location where the string is and the location of the start of the string
  152.   will be written in the information line at the top of the window. If the
  153. | string is not found an message appears along the top of the window and the
  154.   display remains at its last location.
  155. |         If you are doing a memory search, the location where MemFile stores
  156. | the string you are looking for in memory is excluded from the search. Also,
  157. | if the search goes past phystop, a message will appear in the title bar of
  158. | the window. At this point you may opt to stop the search if you know that
  159. | you do not actually have anymore RAM after phystop.
  160.           You can stop the search at any time by pressing both of the
  161.   keyboard's Shift keys simultaneously. The last location checked in the
  162.   search will be displayed.
  163.           If you want to look for the next occurence of the same string or if
  164.   you want to resume a search that was stopped, merely press the Search button
  165.   a second time. When the dialog appears, click on the "Done!" button and the
  166.   search will proceed. If no other button has been selected since Search was
  167.   invoked the first time, the search will continue from the point where it left
  168.   off. If, however, any button (including the scroll bar) has been selected
  169.   since the initial search, the new search will begin from the lowest address
  170.   on the current display. This means that the same string will be found a
  171.   second time (assuming the previous search was not stopped). To find the
  172.   next occurence, you must then activate the Search feature one more time.
  173.           When entering a string in ASCII, there is no way to include the
  174.   NUL character (ASCII zero). The only way to enter this character is by using
  175.   the Hex field and entering "00" for one of the bytes. Please also note that
  176.   when you select Search a second time after having entered a NUL, the ASCII
  177.   string will be truncated wherever the NUL appeared. The Hex representation
  178.   will remain intact.
  179. |         If you do not like having the Alert function default to "On", merely
  180. | change the resource file using a resource editor so that the "Off" button
  181. | is preselected rather than the "On" one.
  182.  
  183.  
  184.   The Memory Editor:
  185.  
  186.           The memory editor can display and edit any address from zero to the
  187.   highest available location as specified by the system variable "phystop".
  188.   This location is normally just below the maximum address that can be accessed,
  189.   and depends upon how much RAM your machine has. The only time it is not just
  190.   below the top is when you have installed programs such as "reset-proof"
  191.   ramdisks which change the value of phystop. MemFile can display any address
  192.   up to 0x3FFFFE, however, you will not be able to alter any memory location
  193.   greater than the RAM capacity of your machine (normally address 0xFFFFF on a
  194.   1040ST). For this reason, whenever an address between phystop and 0x3FFFFE
  195.   is displayed, a warning message appears at the top of the window.
  196.           You can select either of the editable address fields and enter a new
  197.   value. Addresses in decimal contain only the digits 0-9 and addresses in
  198.   hexadecimal contain 0-9 and A-F (or a-f). Pressing Return causes the display
  199.   to be redrawn, starting at the new location. If the location you gave was
  200.   higher than the highest location available, the address will be moved to the
  201.   highest location.
  202.           If you want to edit a memory location in ROM, you cannot do so by
  203.   using the scroll bar because the entire area from 0x400000 to 0xF90000 is
  204.   inaccessible. Instead, you must begin by using either of the editable
  205.   address fields to enter an address from 0xFA0000 to 0xFEFFFF. The scroll bar
  206.   will then assume that the "lowest" address is actually 0xFA0000. Enter any
  207.   RAM address to switch back to that area.
  208.           In this mode, you can click on the scroll bar to the right of the
  209.   display to move up or down in 128 byte intervals. Clicking on the arrow
  210.   buttons move the address up or down 16 bytes at a time. You can also drag the
  211.   slider to a new position. Unlike the scroll bars found on Atari's desktop, you
  212.   can select any portion of this scroll bar and hold the left mouse button down
  213.   to repeat the function continuously.
  214.  
  215.  
  216.   The File Editor:
  217.  
  218.           Whenever you select this option, the standard Atari file selector
  219.   appears. You can then select any existing file to edit.
  220.           After you have selected a file, the display will show the contents of
  221.   the file from its beginning. You can move to any location within the file
  222.   using the scroll bar and edit by clicking on the appropriate location in the
  223.   display.
  224. |         An offset into the file, relative to the strat can also be entered
  225. | by selecting either the Hex or Decimal editable field.
  226.           You can select the editable filename field if you want to switch to
  227.   another file contained in the same directory as the previous one. This is
  228.   sometimes easier than calling up the selector, which can be done by clicking
  229.   on the "Selector..." button. If the new file is not found or it cannot be
  230.   opened for both read and write, the program will try to re-open the previous
  231.   file. If this fails, the file selector will appear once again. This time, if
  232.   the file you select is not available, you will be returned to the Memory
  233.   editor.
  234.           If you close the MemFile window or leave the GEM program you are
  235.   currently in with the window open, the file will also be closed. However, the
  236.   next time you select MemFile from the menu bar it will try to re-open the file
  237.   you were working on last. If this is file is on a floppy, you should make
  238.   sure the same floppy is still in the appropriate drive. Please note that
  239.   this also means that the system considers a file to be open as long as you
  240.   are in the File mode. If you want to be able to access the file from any
  241.   other application without risking possible dmamge to its contents, you must
  242.   either leave the File option or close the MemFile window first.
  243.           Because MemFile cannot actually increase or decrease the length of a
  244.   file, attempting to edit a zero-length file will cause an error message to be
  245.   appear.
  246.           In this mode, clicking on the arrow keys has the same effect as
  247.   clicking on the gray area of the scroll bar, the display moves forward or
  248.   backward 128 bytes.
  249.  
  250.  
  251.   The Sector Editor:
  252.  
  253.           When you first choose this option, the bootsector of the drive your
  254.   system was started with is displayed. Also, some statistics about the disk in
  255.   that drive are shown at the very bottom of the window.
  256.           You can switch to a new sector on the disk by clicking on either of
  257.   the + or - buttons to change the sector one at-a-time, or by clicking on the
  258.   number of sectors itself to edit it. To switch to another disk drive, select
  259.   the "Drives..." button. A dialog containing the valid drives in boldface will
  260.   appear. Click on any of the active drives to begin editing sectors on that
  261.   disk. If MemFile encounters any problem when reading or writing a sector, it
  262.   will return you to the Memory editor. Only those disks whose boot sectors
  263.   report them as having atleast one side, alteast one sector per track, and
  264.   no more than 512 bytes per sector can be viewed.
  265.           The "Swap Disks" button forces the program to re-read the bootsector
  266.   of the active drive. This is useful when switching disks in a floppy drive.
  267.   If you do not use this function (or re-select the current drive from the
  268.   Drives menu) the program may try to access a sector on the disk which does
  269.   not exist, causing an error.
  270.           MemFile always tries to read the "boot sector" of the disk whenever a
  271.   new disk is inserted or a new drive is selected. If it cannot read the boot
  272.   sector, the program displays an error message and displays the Drives list
  273.   so you can either insert a disk whose boot sector is good, or switch to
  274.   another drive alltogether.
  275.           Here, the scroll bar can be used to move the display throughout a
  276. | given sector and an offset within the sector can be entered in either the
  277. | Decimal or Hex editable field.
  278.  
  279.  
  280. | Keyboard Commands:
  281. |
  282. |         Many of the main functions can be activated using simple keystrokes
  283. | rather than by using the mouse. This is especially useful with the scroll
  284. | bar, as it can be moved repeatedly until both Shift keys are pressed, rather
  285. | than having to hold-down the mouse button for long periods of time.
  286. |         A complete keyboard map is available by selecting the button from
  287. | the MemFile window.
  288.  
  289.  
  290.   Comments:
  291.  
  292.           Note that the scroll bar in File Editing mode only moves in increments
  293.   of 128 bytes. This is due to the the small buffer that MemFile uses.
  294.           For some reason, the memory locations between the highest RAM address
  295.   and 0x3FFFFF do weird things. If you try to edit the locations, some of the
  296.   bytes appear to change just by moving the cursor over them. This is because
  297.   MemFile is somehow fed conflicting information when displaying and beginning
  298.   the edit. Don't worry about it, you can't change these locations anyway and
  299.   they really are quite useless. They just sit there and look nice.
  300.           This program works only in medium and high resolution for obvious
  301. | reasons. Booting in low-rez will not result in any message, however
  302.   even though the program does not run, it is still in memory just sitting
  303.   there doing nothing. Thought you might like to know where that memory is
  304.   disappearing to.
  305.           The Search feature can be rather slow. This is mostly because every
  306.   single byte in the area must be examined -- it took 1/2 hour to scan an
  307.   entire double-sided floppy. This really cannot be avoided, sorry.
  308. |         Current memory consumption is 29,798 bytes when running.
  309.  
  310.  
  311.  
  312.         If you have any comments or suggestions please feel free to send
  313. them to either of the addresses below. A source listing is also available
  314. by sending a check or money order for $5 (can't get much cheaper) made
  315. out in my name, or free (!!) through the net.
  316.  
  317.                                 Gribnif@UMASS.Bitnet
  318.                                 Gribnif%UMASS.Bitnet@Forsythe.Stanford.EDU
  319.  
  320.  
  321.                                 MemFile Sources
  322.                                 Gribnif Software
  323.                                 P. O. Box 350
  324.                                 Hadley, MA  01035
  325.  
  326.  
  327.  
  328.